package com.j.lemon.learn;

public class SubstringUtil {
    public static void main(String[] args) {
        String s = "qwerewerwer45412312312323445xxxxxxx";
        String key = "45";
        String result = sub(s, key, 2);
        System.out.println(result);

    }

    /**
     * 截取字符串
     * @param str 要截取的字符串
     * @param key 要匹配的关键字
     * @param subLength 关键字前后截取的长度
     * @return
     */
    private static String sub(String str, String key,int subLength){
        //如果要截取的字符串长度小于100 ，直接返回
        if(str.length()<=100){
            return str;
        }else{
            //关键字的未知
            int keyIndex = str.indexOf(key);
            //如果不包含关键字，返回空
            if(keyIndex<0){
                return "";
            }
            //开始截取的index
            int startIndex = 0;
            //如果关键字前面的字符串不够subLength,则从index=0开始截取，如果够，则从关键字index-subLength开始截取
            if(keyIndex>=subLength){
                startIndex = keyIndex - subLength;
            }
            int endIndex = str.length();

            //如果关键字后面的字符串长度不够subLength,则一直截取到最后，如果够，则截取到关键字的index+关键字的长度+subLength
            if(str.length()-keyIndex - key.length()>= subLength){
                endIndex = keyIndex+key.length()+subLength;
            }
            return str.substring(startIndex,endIndex);
        }
    }
}
